跳到主要内容

239 滑动窗口最大值

https://leetcode.cn/leetbook/read/top-interview-questions-hard/xw4q0r/

cost: NaN

class Solution {
public:
vector<int> maxSlidingWindow(vector<int>& nums, int k) {
vector<int> res;
deque<int> q;
for (int i = 0; i < k; i++) {
while (!q.empty() && nums[q.back()] <= nums[i]) {
q.pop_back();
}
q.push_back(i);
}
res.push_back(nums[q.front()]);
for (int i = k; i < nums.size(); i++) {
if (q.front() <= i - k) {
q.pop_front();
}
while (!q.empty() && nums[q.back()] <= nums[i]) {
q.pop_back();
}
q.push_back(i);
res.push_back(nums[q.front()]);
}
return res;
}
};